home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / applications / wp / textra16.lha / Textra116 / Scripts / Tutorial.textra < prev    next >
Encoding:
Text File  |  1994-01-11  |  23.5 KB  |  639 lines

  1.     /*******************************************************************
  2.      *   TEXTRA AREXX script -- Mike Haas, ©1993, All Rights Reserved. *
  3.      * Freely distributable ONLY as a component of the TEXTRA package. *
  4.      * This banner may not be removed or altered (improvements to the  *
  5.      *    actual program welcome).  Please document and send to me.    *
  6.      *        !!! PLACE THIS FILE IN YOUR REXX: DIRECTORY !!!          *
  7.      *******************************************************************/
  8.  
  9. /* Tutorial for TEXTRA (v1.13 required)
  10.  *
  11.  * by Mike Haas
  12.  *
  13.  * This script is a training aid to give the user a sense of the
  14.  * user-interface of the editor.
  15.  *
  16.  * It accepts one optional argument... if the keyword "delay" is
  17.  * supplied, the Tutorial will delay between text pieces spilled
  18.  * to the screen as a 'pacing' mechanism.
  19.  *
  20.  */
  21.  
  22. OPTIONS results
  23.  
  24. rex = 0; result = "NOTSUPPORTED"    /*00002*/
  25. textraversion
  26. parse var result maj min rex
  27. if (result == "NOTSUPPORTED") | (rex < 5) then do
  28.     notify "Textra 1.13 or later required to run this script."
  29.     exit
  30. end
  31.  
  32. parse arg delay
  33.  
  34. openfile "ram disk:Textra Tutorial"; tutwin = result
  35. clear
  36.  
  37. if (tutwin == 0) then do
  38.    notify "Can't open the window"
  39.    exit
  40. end
  41.  
  42. prefs autoindent read
  43. wasai = result
  44. prefs autoindent off
  45.  
  46.  
  47.  
  48. quitflag = 0
  49.  
  50. do while (quitflag == 0)
  51.     clear
  52.     newline
  53.     textn '"                 Welcome to the Textra Tutorial"'
  54.     textn '"                 =============================="'
  55.     newline
  56.     textn '"                   A - All topics in sequence"'
  57.     newline
  58.     textn '"    1 - Introduction                  2 - Provided documentation"'
  59.     textn '"    3 - Using the mouse               4 - Positioning the cursor"'
  60.     textn '"    5 - Selecting ranges of text      6 - The window scroll bars"'
  61.     textn '"    7 - Working with selected text    8 - Textra Preferences"'
  62.     textn '"    9 - Textra and Fonts             10 - The ARexx Interface"'
  63.     newline
  64.     textn '"                  R - Registration Information"'
  65.     newline
  66.     textn '"                        X - Exit tutorial"'
  67.     newline;newline
  68.     response = getreturn('"                         Choose a topic: "')
  69.     
  70.     parse var response stx sty endx endy
  71.     gotoxy stx sty;selectto endx endy
  72.     get select text;parse var result numleft' 'theSelection
  73.     if (numleft == 0) then do
  74.         if ((theSelection == "A") | (theSelection == "a")) then
  75.             call DoSequence
  76.         if (theSelection == 1) then
  77.             call DoIntro
  78.         if (theSelection == 2) then
  79.             call DoDocs
  80.         if (theSelection == 3) then
  81.             call DoMouseInfo
  82.         if (theSelection == 4) then
  83.             call DoPositionCursor
  84.         if (theSelection == 5) then
  85.             call DoSelectRanges
  86.         if (theSelection == 6) then
  87.             call DoScrollBars
  88.         if (theSelection == 7) then
  89.             call DoSelectTextInfo
  90.         if (theSelection == 8) then
  91.             call DoPrefs
  92.         if (theSelection == 9) then
  93.             call DoFonts
  94.         if (theSelection == 10) then
  95.             call DoARexx
  96.         if ((theSelection == "R") | (theSelection == "r")) then
  97.             call DoReg
  98.         if ((theSelection == "X") | (theSelection == "x")) then do
  99.             prefs autoindent wasai
  100.             CloseWindow
  101.             exit
  102.         end
  103.     end
  104. end
  105.  
  106. exit
  107.  
  108.  
  109. DoSequence:
  110.     call DoIntro
  111.     call DoDocs
  112.     call DoMouseInfo
  113.     call DoPositionCursor
  114.     call DoSelectRanges
  115.     call DoScrollBars
  116.     call DoSelectTextInfo
  117.     call DoPrefs
  118.     call DoFonts
  119.     call DoARexx
  120.     call DoReg
  121. return
  122.  
  123.  
  124. DoIntro:
  125. clear;wfs=waitforsub(1);newline;newline
  126. textn '"                    Welcome to TEXTRA!"'
  127. wfs=waitforsub(2)
  128. newline
  129. textn '"     This tutorial is designed to give you a feel for"'
  130. textn '"     what Textra can do by guiding you through some of"'
  131. textn '"     its basic editing operations and features."'
  132. wfs=waitforsub(2)
  133. newline
  134. textn '"     Occasionally, the tutorial will suggest some things"'
  135. textn '"     to try.  As the editor functions independantly of this"'
  136. textn '"     ARexx tutorial, you may try them immediately.  Simply"'
  137. textn '"     press RETURN when done, as prompted."'
  138. wfs=waitforsub(2)
  139. newline
  140. text  '"     Like now..."';
  141. wfs=waitforsub(2)
  142. response = getreturn('"    Please hit the RETURN key..."')
  143.  
  144. clear;wfs=waitforsub(1);newline;newline
  145. textn '"                    What is TEXTRA?"'; newline
  146. newline
  147. wfs=waitforsub(1)
  148. text '"     "';textn "It's an Intuition-ized, GUI-based text editor with";
  149. text '"     "';textn "word-processor-like features, complete with a full";
  150. text '"     "';textn "and capable ARexx command set and Script package.";
  151. newline
  152. wfs=waitforsub(2)
  153. textn '"     The emphasis of my efforts has been to make the user"';
  154. textn '"     interface easy-to-use AND powerful."';
  155. newline
  156. wfs=waitforsub(1)
  157. textn '"   Working with the Textra menus, keyboard and ARexx scripts"'
  158. textn '"   is about the best way to get to know it.  Experimentation"'
  159. textn '"   (and registering as a Textra user) is heartily encouraged."'
  160. newline
  161. wfs=waitforsub(1)
  162. response = getreturn('"                 (RETURN to continue)"')
  163. return
  164.  
  165. DoDocs:
  166. clear;wfs=waitforsub(1);newline
  167. textn '"          The Textra Documentation (the Docs drawer)"'
  168. textn '"          ------------------------------------------"';newline
  169. wfs=waitforsub(1.5)
  170. textn '"     Please refer to the Textra.doc file for detailed information"'
  171. textn '"     about all editor features and facilities."'
  172. newline;wfs=waitforsub(1)
  173. textn '"     If you are interested in programming your own Textra-"'
  174. textn '"     Arexx scripts, the RexxCommand.doc file describes the"'
  175. textn '"     Textra-resident command set."'
  176. newline;wfs=waitforsub(1)
  177. textn '"     For previous Textra users, the complete change history"'
  178. textn '"     contained in WhatsNew.doc may be of interest."'
  179. newline;wfs=waitforsub(1)
  180. textn '"     Finally, a list of known gotchas is listed in a file"'
  181. textn '"     called zKnownProblems.doc (which has shrunk to just"'
  182. textn '"     about nothing!  Yay!)."'
  183. newline;wfs=waitforsub(1)
  184. response = getreturn('"                     (RETURN to continue)"')
  185. return
  186.  
  187. DoMouseInfo:
  188. clear;wfs=waitforsub(1);newline;newline
  189. textn '"              Use of the mouse in Textra"'
  190. textn '"              --------------------------"';newline
  191. wfs=waitforsub(1.5)
  192. textn '"       The LEFT MOUSE BUTTON can be used to..."';newline
  193. wfs=waitforsub(2)
  194. textn '"       1. Position the text cursor (topic 4)"';wfs=waitforsub(1)
  195. textn '"       2. Establish a select range (topic 5)"';wfs=waitforsub(1)
  196. textn '"       3. Control the window scroll bars (topic 6)"'
  197. newline;newline;wfs=waitforsub(2)
  198. text  '"  "';textn "The RIGHT MOUSE BUTTON is used to access Textra's menus."
  199. newline
  200. response = getreturn('"               (RETURN to continue)"')
  201. return
  202.  
  203. DoPositionCursor:
  204. clear;wfs=waitforsub(1);newline;newline
  205. textn '"              Positioning the cursor"'
  206. textn '"              ----------------------"';newline
  207. wfs=waitforsub(1.5)
  208. textn '"    The Textra cursor is a vertical bar that always"'
  209. textn '"    lies on the extreme left edge of the character"';
  210. textn '"    position it is occupying."';newline
  211. response = getreturn('"              (RETURN to continue)"')
  212. gotoxy 0 5;
  213. selectto 0 10
  214.  
  215. textn '"    While pointing the mouse pointer at some word on"'
  216. textn '"    this page, Single-Click the LEFT MOUSE BUTTON..."';newline
  217. response = getreturn('"    (Do that several times, then RETURN to continue)"')
  218. gotoxy 0 5;
  219. selectto 0 9
  220.  
  221. textn '"    Place the cursor in the middle of a line, then"'
  222. textn '"    experiment with the keyboard arrow-keys..."';newline
  223. response = getreturn('"      (When finished, press RETURN to continue)"')
  224. return
  225.  
  226. DoSelectRanges:
  227. clear;wfs=waitforsub(1);newline;newline
  228. textn '"                Selecting a Range of Text"'
  229. textn '"                -------------------------"'
  230. newline
  231. wfs=waitforsub(1.5)
  232. textn '"    Any contiguous series of characters may be SELECTED"'
  233. textn '"    in a variety of ways.  As you will later see, such"'
  234. textn '"    a SELECT RANGE may be used as a single object; it may"'
  235. textn '"    be CUT, COPIED, PASTED, passed to ARexx scripts"'
  236. textn '"    and more."';
  237. newline
  238. wfs=waitforsub(2)
  239. textn '"    This section illustrates several methods of"'
  240. textn '"    SELECTING TEXT..."';newline
  241. response = getreturn('"             (Press RETURN to continue)"')
  242. gotoxy 0 5;
  243. selectto 0 15
  244.  
  245. textn '"    While pointing the mouse pointer at some word on"'
  246. textn '"    this page, DOUBLE-Click the LEFT MOUSE BUTTON..."';newline
  247. response = getreturn('"     (Do that several times, then RETURN to continue)"')
  248. gotoxy 0 5;
  249. selectto 0 9
  250.  
  251. textn '"    Now try TRIPLE-Clicking the LEFT MOUSE BUTTON on a line..."';newline
  252. response = getreturn('"    (Do that several times, then RETURN to continue)"')
  253. gotoxy 0 5;
  254. selectto 0 8
  255.  
  256. textn '"    Place the cursor over some word, then press & hold the"'
  257. textn '"    LEFT MOUSE BUTTON.  Then move the mouse around a little"'
  258. textn '"    and finally let the LEFT MOUSE BUTTON up."'
  259. newline
  260. response = getreturn('"      (Do that several times, then RETURN to continue)"')
  261. gotoxy 0 5;
  262. selectto 0 10
  263.  
  264. textn '"    Wherever the cursor is at the moment, move the mouse"'
  265. textn '"    pointer such that it is over some other word.  Then,"'
  266. textn '"    while holding down a SHIFT key, Single-click the LEFT"'
  267. textn '"    MOUSE BUTTON."'
  268. newline
  269. response = getreturn('"      (Do that several times, then RETURN to continue)"')
  270. return
  271.  
  272.  
  273. DoScrollBars:
  274. clear;wfs=waitforsub(1);newline;newline
  275. textn '"          Controlling the Window Scroll Bars"'
  276. textn '"          ----------------------------------"';newline
  277. wfs=waitforsub(1.5)
  278. textn '"    Every Textra window includes vertical and horizontal"'
  279. textn '"    scroll bars which become active as soon as text"'
  280. textn '"    exceeds the visible window dimensions in either"'
  281. textn '"    direction."'
  282. newline;wfs=waitforsub(1.5)
  283. textn '"    They afford continuous scrolling in the appropriate"'
  284. textn '"    direction to make all text visible.  Also, there are"'
  285. textn '"    times when Textra will scroll by itself (such as when"'
  286. textn '"    you try to type off the edge of the window) and the"'
  287. textn '"    scroll bars will reflect such changes."'
  288. newline;wfs=waitforsub(1)
  289. response = getreturn('"                (RETURN to continue)"')
  290. gotoxy 0 5;
  291. selectto 0 17
  292.  
  293. text  '"    Observe the horizontal scroll bar below..."'
  294. waitfor 1
  295. text  '" as this line..."';waitfor 1;text '" gets "';waitfor 1;
  296. text  '" longer "';waitfor 1;text '" and "';waitfor 1;text '" longer..."'
  297. waitfor 2;newline;newline;wfs=waitforsub(2)
  298. textn '"    The above line is longer than the window is wide,"'
  299. textn '"    and the horizontal scroll bar reflects that."';newline
  300. wfs=waitforsub(1.5)
  301. textn '"    Go ahead and click on the scroll bar components"'
  302. textn '"    (arrows, slider, non-slider), drag the slider"'
  303. textn '"    around, get a feel for the horizontal window control..."'
  304. newline;wfs=waitforsub(1)
  305. response = getreturn('"        (Press RETURN when finished experimenting)"')
  306. gotoxy 0 5;
  307. selectto 0 15
  308.  
  309. textn '"    Lets illustrate both scroll bars in action..."';newline
  310. wfs=waitforsub(1.5)
  311. textn '"    This window will soon fill with enough text such"'
  312. textn '"    that both scroll bars will activate."';newline
  313. wfs=waitforsub(1.5)
  314. textn '"    Once it does, play with both scroll bars, moving the"'
  315. textn '"    text around.  When finished experimenting, press"'
  316. textn '"    RETURN."';newline
  317. wfs=waitforsub(1.5)
  318. get cursor position; parse var result cx cy;
  319. response = getreturn('"     (Press RETURN to activate both scroll bars)"')
  320. gotoxy 0 cy;selectto 0 cy+1
  321. del
  322. newline;newline;newline;newline;
  323. textn '"    Four score and seven years ago, our forefathers brought forth upon this continent"'
  324. textn '"    a new nation, dedicated to the proposition that all men are created equal.  We hold"'
  325. textn '"    these truths to be self-evident..."';newline;newline;newline
  326. response = getreturn('"                (Press the RETURN key when finished experimenting)"')
  327. return
  328.  
  329. DoSelectTextInfo:
  330. clear;wfs=waitforsub(1);newline;newline
  331. textn '"           Working with selected ranges of text"'
  332. textn '"           ------------------------------------"';newline
  333. wfs=waitforsub(1.5)
  334. textn '"    Once a section of text is SELECTED (see topic 5),"'
  335. textn '"    it may be CUT, or COPIED into a Textra internal buffer."'
  336. textn '"    It is then a simple matter to re-position the cursor"'
  337. textn '"    to another location (perhaps even in a different"'
  338. textn '"    Textra window), and PASTE that text there."';newline
  339. wfs=waitforsub(1.5)
  340. textn '"    To illustrate, select any section of text in the"'
  341. textn '"    preceeding paragraph, then press Right-Amiga-C (copy)."'
  342. textn '"    Position the cursor just past the paragraph and press"'
  343. textn '"    Right-Amiga-V (paste)."'
  344. newline;wfs=waitforsub(1)
  345. response = getreturn('"              (Press RETURN when finished)"')
  346. clear;newline;newline
  347. textn '"           Working with SELECTED RANGES of text"'
  348. textn '"           ------------------------------------"';newline
  349. wfs=waitforsub(1.5)
  350. textn '"    When a SELECT RANGE exists, the DEL and BACKSPACE keys"'
  351. textn '"    on the keyboard work similar to the CUT operation,"'
  352. textn '"    except that the removed text is NOT saved in the"'
  353. textn '"    internal Textra buffer."'
  354. newline;wfs=waitforsub(1)
  355. response = getreturn('"                 (Press RETURN to continue)"')
  356. return
  357.  
  358. DoPrefs:
  359. clear;wfs=waitforsub(1);newline;newline
  360. textn '"             Textra Preference Settings"'
  361. textn '"             --------------------------"';newline
  362. wfs=waitforsub(1.5)
  363. textn '"    Textra provides a set of user-configurable Preference"'
  364. textn '"    settings which can be saved to disk such that they will"'
  365. textn '"    be re-assumed whenever Textra starts-up."'
  366. newline;wfs=waitforsub(1.5)
  367. textn '"    Optionally, these settings may be invoked temporarily"'
  368. textn '"    without being saved to disk."'
  369. newline;wfs=waitforsub(1.5)
  370. textn '"    The settings are grouped into 3 areas of use:"'
  371. newline;wfs=waitforsub(1)
  372. textn '"                1. Printing Preferences"';wfs=waitforsub(1)
  373. textn '"                2. Editing Preferences"';wfs=waitforsub(1)
  374. textn '"                3. Font Preferences"';wfs=waitforsub(1)
  375. newline;wfs=waitforsub(1.5)
  376. response = getreturn('"              (Press RETURN to continue)"')
  377.  
  378. clear;wfs=waitforsub(1);newline;newline
  379. textn '"               Textra Printing Preferences"'
  380. textn '"               ---------------------------"'
  381. newline;wfs=waitforsub(1.5)
  382. textn '"    Under the Project menu is the Printing Preferences... item."'
  383. textn '"    Pull it down now and observe the various settings available."'
  384. textn '"    Then press the CANCEL button on the requester."'
  385. newline;wfs=waitforsub(1.5)
  386. textn '"    Refer to Textra.doc for more information about any of the"'
  387. textn '"    available Printing Preference settings."'
  388. newline;wfs=waitforsub(1.5)
  389. response = getreturn('"         (When finished, press RETURN to continue)"')
  390.  
  391. clear;wfs=waitforsub(1);newline;newline
  392. textn '"                 Textra Editing Preferences"'
  393. textn '"                 --------------------------"'
  394. newline;wfs=waitforsub(1.5)
  395. textn '"    Under the Edit menu is the Editing Preferences... item."'
  396. textn '"    Pull it down now and observe the various settings available."'
  397. textn '"    Then press the CANCEL button on the requester."'
  398. newline;wfs=waitforsub(1.5)
  399. textn '"    Refer to Textra.doc for more information about any of the"'
  400. textn '"    available Editing Preferences."'
  401. newline;wfs=waitforsub(1.5)
  402. response = getreturn('"         (When finished, press RETURN to continue)"')
  403.  
  404. clear;wfs=waitforsub(1);newline;newline
  405. textn '"                   Textra Font Preferences"'
  406. textn '"                   -----------------------"'
  407. newline;wfs=waitforsub(1.5)
  408. textn '"    Under the Utilities menu is the Font Preferences... item."'
  409. textn '"    This item will be enabled if the asl.library (usually"'
  410. textn '"    associated with WB2.0 and later) is available on your"'
  411. textn '"    system."'
  412. newline;wfs=waitforsub(1.5)
  413. textn '"    Currently, the only save-able Preference setting is"'
  414. textn '"    the specification of which font to use for newly-opened"'
  415. textn '"    Textra windows."'
  416. newline;wfs=waitforsub(1.5)
  417. textn '"    If enabled, pull it down now and experiment.  Then press"'
  418. textn '"    the CANCEL button on the requester."'
  419. newline;wfs=waitforsub(1.5)
  420. response = getreturn('"         (When finished, press RETURN to continue)"')
  421. return
  422.  
  423. DoFonts:
  424. clear;wfs=waitforsub(1)
  425. text  '"                 "';textn "Textra's use of fonts"
  426. textn '"                 ---------------------"';newline
  427. wfs=waitforsub(1.5)
  428. textn '"    Every Textra window may have a different fixed-space"'
  429. textn '"    font.  Under the Utilities... menu is the Set Window"'
  430. textn '"    Font item.  This item will be enabled if the asl.library"'
  431. textn '"    (usually associated with WB2.0 and later) is available"'
  432. textn '"    on your system."'
  433. newline; wfs=waitforsub(1.5)
  434. textn '"    Feel free to experiment with it now.  When finished,"'
  435. textn '"    you should set the Tutorial window to Topaz8 or equiv-"'
  436. textn '"    alent, where the page-formatting routines of this"'
  437. textn '"    tutorial work best."'
  438. newline;wfs=waitforsub(1)
  439. textn '"    As an alternative, you could pull down the Project menu,"'
  440. textn '"    Open New File item which will give you a new window to"'
  441. textn '"    type some text into and change fonts with.  If you do so,"'
  442. textn '"    just come back to this window when done.  Then..."'
  443. newline;wfs=waitforsub(1)
  444. response = getreturn('"                   (RETURN to continue)"')
  445. return
  446.  
  447. DoARexx:
  448. clear;wfs=waitforsub(1);newline
  449. textn '"                 The Textra-ARexx Interface"'
  450. textn '"                 --------------------------"'
  451. newline;wfs=waitforsub(1.5)
  452. textn '"    Almost sounds like a new TV Space show, eh?"'; newline
  453. textn '"    Textra opens an ARexx port called (appropriately) TEXTRA."'
  454. textn '"    The resident 70+ command set provides a range of features:"'
  455. newline
  456. textn '"       ...from manipulating window text...  to window and file"'
  457. textn '"       management... interactivity with the TEXTRA user..."'
  458. textn '"       interactivity with other programs..."'
  459. newline
  460. textn '"    (this tutorial, remember, is but a Textra-ARexx script)"'
  461. newline;wfs=waitforsub(1.5)
  462. textn '"    Refer to Textra.doc for information on running scripts."'
  463. newline;wfs=waitforsub(1.5)
  464. textn '"    Refer to RexxCommand.doc for information on writing scripts."'
  465. newline;wfs=waitforsub(1.5)
  466. response = getreturn('"               (Press RETURN to continue)"')
  467. gotoxy 0 4;
  468. selectto 0 20
  469. textn '"    The Textra package also includes 30+ ARexx scripts that"'
  470. textn '"    are quite varied in scope.  Heres an example... say"'
  471. textn '"    you hastily type in the following angry note:"'
  472. newline;wfs=waitforsub(1.5)
  473. textn '"    Dear See-BS News,"'
  474. newline
  475. textn '"I am writing to say I am simply APPALLED at the"'
  476. textn '"     manner in which you dress Mr. Rathernot of your evening news!"'
  477. newline
  478. textn '"                     You really cramp his style"'
  479. textn '" with those drab suits and power ties.  Why not attire him in the"'
  480. textn '" manner befitting"'
  481. textn '" his unbiased coverage of world events... a Nehru jacket!"'
  482. newline;newline;wfs=waitforsub(1.5)
  483. response = getreturn('"               (Press RETURN to continue)"')
  484. gotoxy 0 4
  485. selectto 0 5;del;selectto 0 5;del;selectto 0 5;del;
  486. gotoxy 0 16;selectto 0 17;del
  487. /***********************************************************************
  488. * wfs=waitforsub(1.5)                                                  *
  489. ***********************************************************************/
  490. waitfor 1.0
  491. get cursor position;parse var result cx cy
  492. textn '"    By use of the command:  paragraph 8 4 60,  one can"'
  493. textn '"    easily reformat each paragraph..."'
  494. newline;wfs=waitforsub(1.5)
  495. response = getreturn('"        (Press RETURN to see what that does)"')
  496. gotoxy 0 cy;selectto 0 cy+4;del
  497. wfs=waitforsub(1.5)
  498. gotoxy 0 7;wfs=waitforsub(1)
  499. selectto 0 8;wfs=waitforsub(0.5)
  500. selectto 0 9;wfs=waitforsub(0.5)
  501. selectto 0 10;wfs=waitforsub(0.5)
  502. selectto 0 11;wfs=waitforsub(0.5)
  503. selectto 0 12;wfs=waitforsub(0.5)
  504. selectto 0 13;wfs=waitforsub(0.5)
  505. selectto 0 14;wfs=waitforsub(0.5)
  506. paragraph 8 4 60
  507. newline;newline;newline;wfs=waitforsub(2.0)
  508. response = getreturn('"                 (Press RETURN to continue)"')
  509. return
  510.  
  511. DoReg:
  512. clear;wfs=waitforsub(1);newline;newline
  513. textn '"                Textra Registration Information"'
  514. textn '"                -------------------------------"'
  515. newline;wfs=waitforsub(1)
  516. textn '"    I hope you find Textra a professional-quality text editor."'
  517. textn '"    Many suggestions from users have gone into Textra which"'
  518. textn '"    have helped it to become a popular tool."'
  519. newline;wfs=waitforsub(1.5)
  520. textn '"    Many important features have been added to the Shareware"'
  521. textn '"    versions... this version sports undo, multi-processing,"'
  522. textn '"    ASL font support, interactivity with SAS/C and HSPascal,"'
  523. textn '"    ARexx interactivity with the user, and much more..."'
  524. textn '"    none of which exists in the older freeware versions."'
  525. newline;wfs=waitforsub(1.5)
  526. response = getreturn('"                   (Press RETURN to continue)"')
  527. gotoxy 0 5;
  528. selectto 0 16
  529.  
  530. textn '"    The registration fee for Textra is $25.00.  You will"'
  531. textn '"    receive the latest version (probably newer than the"'
  532. textn '"    one you are using here).  Instead of the 60 second"'
  533. textn '"    delay screens, it displays a short 2.5-second registra-"'
  534. textn '"    tion notice (personalized to you), which can be closed"'
  535. textn '"    immediately via its OK button if desired.  You can also"'
  536. textn '"    configure your Textra to not display it at all."'
  537. newline;wfs=waitforsub(1.5)
  538. textn '"    Registered users may ask for updates anytime for $5 (or"'
  539. textn '"    include your own SASE+floppy).  Generally, it is best to"'
  540. textn '"    wait at least 6 months before doing so."'
  541. newline;wfs=waitforsub(1.5)
  542. response = getreturn('"                   (Press RETURN to continue)"')
  543. gotoxy 0 5;
  544. selectto 0 18
  545.  
  546. textn '"    If you are a JForth Professional 3.x owner and registered"'
  547. textn '"    with Delta Research, I will register you for free.  Just"'
  548. textn '"    drop me a line and include your JForth serial number."'
  549. newline;wfs=waitforsub(1.5)
  550. textn '"    The serial number appears on the back of the original"'
  551. textn '"    JForth Extras disk, and is available by typing into JForth:"'
  552. newline
  553. textn '"          SERIAL# ?"'
  554. newline;wfs=waitforsub(1.5)
  555. textn '"    This version of Textra will work fine as a substitute for"'
  556. textn '"    the V1.11 that comes with JForth."'
  557. newline;wfs=waitforsub(1.5)
  558. response = getreturn('"                   (Press RETURN to continue)"')
  559. gotoxy 0 5;
  560. selectto 0 18
  561. cut
  562.  
  563. waitfor .5
  564. textn '"           Textra is written in JForth Professional 3.1"'
  565. newline
  566. textn '"                           Mike Haas"'
  567. textn '"                       3867 La Colina Rd."'
  568. textn '"                     El Sobrante, CA. 94803"'
  569. newline;newline
  570. get cursor position;parse var result cx cy
  571. waitfor 1
  572. text '"                "';textn "THERE'S A TEXTRA WAITING FOR YOU"
  573. i = 0
  574. do while (i < 3)
  575.    waitfor 0.5
  576.    gotoxy 16 cy;selectto 48 cy
  577.    waitfor 0.5
  578.    unselect;right 1
  579.    i = i+1
  580. end
  581. prefs AlphanumericHops read;ahops = result
  582. prefs AlphanumericHops off
  583. gotoxy 0 cy
  584. i = 0
  585. do while (i < 6)
  586.    waitfor 0.1
  587.    hopselect next word
  588.    i = i+1
  589. end
  590. i = 0
  591. do while (i < 5)
  592.    waitfor 0.1
  593.    hopselect prev word
  594.    i = i+1
  595. end
  596. i = 0
  597. do while (i < 5)
  598.    waitfor 0.1
  599.    hopselect next word
  600.    i = i+1
  601. end
  602. i = 0
  603. do while (i < 1)
  604.    waitfor 0.1
  605.    hopselect prev word
  606.    i = i+1
  607. end
  608. prefs AlphanumericHops ahops
  609. down 2
  610. /*
  611.                    THERE'S A TEXTRA WAITING FOR YOU
  612. */
  613. newline;newline;wfs=waitforsub(1.5)
  614. response = getreturn('"                   (press RETURN to continue)"')
  615. return
  616.  
  617. DoByeBye:
  618. prefs autoindent wasai
  619. notify "end of script"
  620. exit
  621. return
  622.  
  623. getreturn:
  624.     parse arg theprompt
  625.     checkcancel
  626.     if (result == CANCEL) then do
  627.         notify "Aborting"
  628.         prefs autoindent wasai
  629.         exit
  630.     end
  631.     returnprompt theprompt
  632. return result
  633.  
  634. waitforsub:
  635.    parse arg wfval
  636.    if (delay == "delay") then
  637.       waitfor wfval
  638. return wfval
  639.